Задачи (Tasks)
Определение и принципы
Прочтите Определения и принципы
Правила
- Все задачи должны наследоваться
.Boot\Abstracts\Tasks\Task
Структура папок
- usr
- modules
- {module-name}
- Tasks
- ConfirmUserEmailTask.php
- GenerateEmailConfirmationUrlTask.php
- SendConfirmationEmailTask.php
- ValidateConfirmationCodeTask.php
- SetUserEmailTask.php
- ...
Пример кода
Задача (Task)
class FindUserByIdTask extends Task
{
private $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function run($id)
{
try {
$user = $this->user->find($id);
} catch (Exception $e) {
throw new UserNotFoundException();
}
return $user;
}
}
Вызов задачи из действия (Action)
class ValidateUserEmailAction extends Action
{
public function run($userId, $code)
{
app(ValidateConfirmationCodeTask::class)->run($userId, $code);
$user = app(FindUserByIdTask::class)->run($userId);
app(ConfirmUserEmailTask::class)->run($user);
}
}